#pragma once
#include "pch.h"

namespace Model
{
    struct MeshData
    {
        std::string m_Name;
        std::vector<glm::vec3> m_Positions;
        std::vector<glm::vec3> m_Normals;
        std::vector<glm::vec2> m_TexCoords;
        std::vector<unsigned int> m_Indices;
    };

    struct VertexPosNormalTex
    {
        glm::vec3 position;
        glm::vec3 normal;
        glm::vec2 texCoords;

        VertexPosNormalTex() = default;
        VertexPosNormalTex(const MeshData &meshData, unsigned int index)
        {
            this->position = meshData.m_Positions[index];
            this->normal = meshData.m_Normals[index];
            this->texCoords = meshData.m_TexCoords[index];
        }
    };

    struct MeshPTNData
    {
        std::string m_Name;
        std::vector<VertexPosNormalTex> m_Vertices;
        std::vector<unsigned int> m_Indices;

        MeshPTNData() = default;
        MeshPTNData(const MeshData &meshData);
    };
};
